The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Mobile computing devices and other computers now are commonly provided with touch-sensitive digital graphical displays. These displays use arrays of transparent capacitive elements that detect a change in applied voltage when physical touch pulls an element to ground potential. User input to application programs, utility services and other software can be provided by tapping, dragging, or drawing simple gestures on the screen. Typically, such gestures consist of a swipe, pinch, reverse pinch and other one- or two-finger movements.
However, to date, gesture recognition software has been incapable of recognizing a large vocabulary of more complex gestures. The recognition of a complex gesture requires simultaneous or near-simultaneous detection of contact with multiple different points on a screen, and identification of multiple vectors representing movement of fingers. Continuous monitoring of a dense display screen for these contact points may require more processing power than an operating system is designed to allocate to the task. Furthermore, gesture recognition services usually have been provided via operating system libraries that are not easily adaptable to special-purpose gestures that particular application programs may need or benefit from.
Thus, what is needed is a more sophisticated and flexible gesture recognition process that can enable different computer program applications to receive input via complex gestures that may be application-specific.